#ifndef POWER_METHOD_H
#define POWER_METHOD_H

#include <stdint.h>

#include "../../utils/MatrixUtils.h"

namespace NumericalAnalysis
{
    // Power method for matrices:
    // The parameters are:
    // Dimension of the matrix.
    // File path to read a matrix  (nxn)
    // File path to read a vector (nx1)
    // Max iterations allowed
    // Error tolerance
    // Also you need to pass the eigenvalue and eigenvector 
    // where return the results.
    void PowerMethod(const uint32_t matrixDimension, const std::string& filePathForMatrix, const std::string& filePathForVector, 
    	const uint32_t maxIterations, const double errorTolerance, double& outEigenvalue, 
    	Utils::Matriz& outEigenvector, uint32_t& outLastIteration);
}

#endif // POWER_METHOD_H
